package org.leetcode.middle.leetcode82;

import org.leetcode.easy.ListNode;

import java.util.HashSet;
import java.util.List;

public class Solution {
    public ListNode deleteDuplicates(ListNode head) {

        ListNode listNode = head;
        ListNode dummy = new ListNode();
        dummy.next=listNode;
        ListNode pre = dummy;
        HashSet<Integer> hashSet = new HashSet<>();
        HashSet<Integer> duplicateNodes = new HashSet<>();
        while (listNode!=null){
            if (hashSet.contains(listNode.val)){
                duplicateNodes.add(listNode.val);
            }else {
                hashSet.add(listNode.val);
            }
            listNode=listNode.next;
        }

        listNode=head;

        while (listNode!=null){
            if (duplicateNodes.contains(listNode.val)){
                pre.next=listNode.next;
            }else {
                pre=pre.next;
            }
            listNode=listNode.next;
        }

        return  dummy.next;
    }
}
